declare const anyVar: any;
declare const nestedAny: { prop: any };
// anyVar为any类型，禁止调用
anyVar();
anyVar.a.b();
// nestedAny中的prop属性为any类型，禁止调用
nestedAny.prop();

function foo(x: any) {
  x();
};

function foo(x: any) {
  x?.();
};

function foo(x: any) {
  x.a.b.c.d.e.f.g();
};

function foo(x: any) {
  x.a.b.c.d.e.f.g?.();
};

function foo(x: { a: any }) {
  x.a();
};

function foo(x: { a: any }) {
  x?.a();
};

function foo(x: { a: any }) {
  x.a?.();
};

function foo(x: any) {
  new x();
};

function foo(x: { a: any }) {
  new x.a();
};

const methods = {
  methodA() {
    return this.methodB()
  },
  methodB() {
    return true
  },
  methodC() {
    return this()
  }
};

function foo(x: { tag: any }) {
  x.tag`foo`;
}

function foo(x: any) {
  x`foo`;
};